// 常规思路：两重循环
// 两重循环的思路：先依次确定数组中的每一个值（第一次循环），然后循环这个值后面的所有值（第二重）
function twoSum(nums, target) {
    // 定义一个空数组去收集所有的可能值
    let sum = [];
    // 第一重循环遍历数组中每一个值
    for (let i = 0; i < nums.length; i++) {
        // 第二重循环遍历第一重循环中的每一个值后面所有的值
        for (let j = i + 1; j < nums.length; j++) {
            // 定义一个数组收集每一对符合条件的值
            let arr = [];
            // 判断两个值的和是否为指定值
            if (nums[i] + nums[j] == target) {
                // 将两个符合要求的值放入数组，并将这个小数组放入最后返回结果 大数组
                arr = [i, j];
                sum.push(arr);
            }
        }
    }
    return sum;
}

function main() {
    // main 是绑定事件的函数
    let num = document.getElementById('nums').value;
    let tar = document.getElementById('target').value;
    tar = tar.split(',');
    twoSum(num.tar);
}

// 定义两个实参，用于测试代码
let nums = [3, 3, 1, 1, 4, 5];
let target = 4;
// 用sum保存函数输出的值
let sum = twoSum(nums, target)
    // 将sum打印在控制台上
    // console.log(sum)
let msg = [{
        name: '张三',
        age: 20,
        strengths: 'JavaScript',
        avatar: 'https://tse4-mm.cn.bing.net/th/id/OIP-C.39mOMBjUfsK-HL9jUbv1MwHaE7?pid=ImgDet&rs=1',
        email: 'yunding@qq.com',
        password: 33333
    },
    {
        name: '李四',
        age: 19,
        strengths: 'python',
        avatar: 'https://tse2-mm.cn.bing.net/th/id/OIP-C.YlKimVo94OkaZDZCzPIDpAHaFh?pid=ImgDet&rs=1',
        email: '12345678@163.com',
        password: 11111
    },
    {
        name: '王五',
        age: 18,
        strengths: 'Java',
        avatar: 'https://tse2-mm.cn.bing.net/th/id/OIP-C.P2hK9SRjhFE8WM9N8tgWFAHaEQ?pid=ImgDet&rs=1',
        email: 'yundingshuyuan@qq.cn',
        password: 222222
    },
]



function login() {
    let email = document.getElementById("email").value;
    let password = document.getElementById("password").value;
    if (!RegexFun(email)) {
        alert('email的格式不正确');
        return;
    }
    for (let i = 0; i < msg.length; i++) {
        if (msg[i].email == email) {
            if (msg[i].password == password) {
                // 操作Dom的函数
                changeDom(i);
                return
            } else {
                alert("密码不正确");
                return
            }
        }
    }
    alert("账号不存在");
}

function RegexFun(str) {
    let reg = /^[A-Za-z0-9_]+\@(qq|163)\.(com|cn)/
    let bol = reg.test(str)
    return bol
}

function changeDom(index) {
    let obj = msg[index]
    document.getElementById('login-box').style.visibility = 'hidden';
    document.getElementById('succee-box').style.visibility = 'visible';
    document.getElementById('img').src = obj.avatar
    let fixName = ['姓名：', '年龄:', '特长:']
    let value = [];
    // for in 可以遍历对象的每个属性，这里将每个属性加入一个数组中
    for (val in obj) {
        value.push(obj[val]);
    }
    // 仅保留跟fixName长度相等的元素，保证能够一一匹配
    value = value.slice(0, fixName.length);
    let sumName = [];
    for (let i = 0; i < fixName.length; i++) {
        // 用一个数组去收集拼接起来的字符串
        sumName.push(fixName[i] + value[i])
    }
    let str = '<div class="msg"></div>'
    forList(sumName.length, str, 'msg-box');
    let msgArr = document.getElementsByClassName('msg')
    for (let i = 0; i < msgArr.length; i++) {
        msgArr[i].innerHTML = sumName[i];
    }
}

function forList(nums, str, boxName) {
    str = str.repeat(nums);
    document.getElementById(boxName).innerHTML = str;
}